1
Vượt qua Tìm kiếm Tuyến tính: Sức mạnh của Các Container Liên kết
AI037Lesson 15
00:00

Hãy tưởng tượng một thư viện nơi các cuốn sách không được xếp theo ngày đến, mà theo một Khóa Chung. Đây chính là sự thay đổi mô hình từ tuần tự sang Các Container Liên kết. Thay vì quét tuyến tính một vector tuyến tính ($O(N)$), chúng ta sử dụng một map hoặc set để đạt được tìm kiếm thời gian logarit ($O(\log n)$).

1. Bản chất của Liên kết

Trong một map, chúng ta lưu trữ cặp khóa-giá trị. Khóa đóng vai trò như một chỉ số có thể là chuỗi, đối tượng tùy chỉnh hoặc bất kỳ kiểu nào hỗ trợ Sắp xếp Yếu nghiêm ngặt. Một set, ngược lại, chỉ lưu trữ các khóa duy nhất, làm cho nó trở thành công cụ lý tưởng để kiểm tra thành viên hoặc lọc dữ liệu.

Vector (Tuần tự)Set (Liên kết)[0]"A"[1]"B"[2]"A"(Lặp)Bộ lọc Duy nhấtKhóa:"A"Khóa:"B"

2. Có thứ tự vs. Không có thứ tự

Các container chuẩn (map, set) giữ các khóa được sắp xếp. Chuẩn C++11 giới thiệu các biến thể không có thứ tự (unordered_map) sử dụng một hàm băm để đạt hiệu suất trung bình $O(1)$. Hãy tìm kiếm dấu hiệu Biểu tượng C++11 khi sử dụng các kho chứa hiệu năng cao này.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>